package com.infore.statisticsAndAlarm.controller.metaAnalysis;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.infore.statisticsAndAlarm.select.util.PageObject;
import com.infore.statisticsAndAlarm.service.IWaterQualityEvaluationService;
import com.infore.statisticsAndAlarm.util.ResultEntity;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;

@Api(value = "综合分析---水质评价接口接口", tags = {"综合分析---水质评价接口接口" })
@RestController
@RequestMapping("/waterQualityEvaluation")
public class WaterQualityEvaluationController {

	@Autowired
	private IWaterQualityEvaluationService iWaterQualityEvaluationService;
	
	@ApiOperation(value="水质评价断面水质详情----表格（区域流域）")
	@ApiImplicitParams({@ApiImplicitParam(value = "时间类型", name = "timeType", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "开始时间", name = "startTime", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "结束时间", name = "endTime", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "查询参数code", name = "queryCode", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "查询类型/area区域/basinn流域station单站", name = "queryType", paramType = "query",required = true,dataType = "String")})
	@GetMapping(value = "/qualityDetailsReports")
	public ResultEntity qualityDetailsReports(String timeType,String startTime,String endTime,String queryCode,
			String queryType,PageObject pageObject,HttpServletRequest request){
		return iWaterQualityEvaluationService.qualityDetailsReports(timeType,startTime,endTime,queryCode,
				queryType,pageObject, request);
	}
	
	@ApiOperation(value="水质评价断面水质详情----饼图")
	@ApiImplicitParams({@ApiImplicitParam(value = "时间类型", name = "timeType", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "开始时间", name = "startTime", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "结束时间", name = "endTime", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "查询参数code", name = "queryCode", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "查询类型-area区域/basinn流域", name = "queryType", paramType = "query",required = true,dataType = "String")})
	@GetMapping(value = "/waterQualityPie")
	public ResultEntity waterQualityPie(String timeType,String startTime,String endTime,String queryCode,
			String queryType,HttpServletRequest request){
		return iWaterQualityEvaluationService.waterQualityPie(timeType,startTime,endTime,
				queryCode,queryType, request);
	}
	
	@ApiOperation(value="水质评价断面水质详情----柱状折线图（区域流域）")
	@ApiImplicitParams({@ApiImplicitParam(value = "时间类型", name = "timeType", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "开始时间", name = "startTime", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "结束时间", name = "endTime", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "查询参数code", name = "queryCode", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "查询类型-area区域/basinn流域station单站", name = "queryType", paramType = "query",required = true,dataType = "String")})
	@GetMapping(value = "/waterQualityBarLine")
	public ResultEntity waterQualityBarLine(String timeType,String startTime,String endTime,String queryCode,
			String queryType,HttpServletRequest request){
		return iWaterQualityEvaluationService.waterQualityBarLine(timeType,startTime,endTime,
				queryCode,queryType, request);
	}
	
	@ApiOperation(value="水质评价断面水质详情----总结（区域流域）")
	@ApiImplicitParams({@ApiImplicitParam(value = "时间类型", name = "timeType", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "开始时间", name = "startTime", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "结束时间", name = "endTime", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "查询参数code", name = "queryCode", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "查询类型area区域/basinn流域station单站", name = "queryType", paramType = "query",required = true,dataType = "String")})
	@GetMapping(value = "/waterQualitySummary")
	public ResultEntity waterQualitySummary(String timeType,String startTime,String endTime,String queryCode,
			String queryType,HttpServletRequest request){
		return iWaterQualityEvaluationService.waterQualitySummary(timeType,startTime,endTime,
				queryCode,queryType, request);
	}
	
	@ApiOperation(value="水质评价断面水质详情----总结（站点）---站点")
	@ApiImplicitParams({@ApiImplicitParam(value = "时间类型", name = "timeType", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "开始时间", name = "startTime", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "结束时间", name = "endTime", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "查询参数code", name = "queryCode", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "查询类型area区域/basinn流域station单站", name = "queryType", paramType = "query",required = true,dataType = "String")})
	@GetMapping(value = "/waterQualitySummaryMn")
	public ResultEntity waterQualitySummaryMn(String timeType,String startTime,String endTime,String queryCode,
			String queryType,HttpServletRequest request){
		return iWaterQualityEvaluationService.waterQualitySummaryMn(timeType,startTime,endTime,queryCode,
				queryType, request);
	}
	
	@ApiOperation(value="水质评价各因子趋势详情----多因子单站折线图-----站点")
	@ApiImplicitParams({@ApiImplicitParam(value = "时间类型", name = "timeType", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "开始时间", name = "startTime", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "结束时间", name = "endTime", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "查询参数code", name = "queryCode", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "查询类型-area区域/basinn流域station单站", name = "queryType", paramType = "query",required = true,dataType = "String")})
	@GetMapping(value = "/waterQualityLines")
	public ResultEntity waterQualityLines(String timeType,String startTime,String endTime,String queryCode,
			String queryType,HttpServletRequest request){
		return iWaterQualityEvaluationService.waterQualityLines(timeType,startTime,endTime,queryCode,
				queryType, request);
	}
	
	@ApiOperation(value="水质评价断面水质详情----表格（站点）----站点")
	@ApiImplicitParams({@ApiImplicitParam(value = "时间类型", name = "timeType", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "开始时间", name = "startTime", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "结束时间", name = "endTime", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "查询参数code", name = "queryCode", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "查询类型/area区域/basinn流域station单站", name = "queryType", paramType = "query",required = true,dataType = "String")})
	@GetMapping(value = "/qualityDetailsReportsForMn")
	public ResultEntity qualityDetailsReportsForMn(String timeType,String startTime,String endTime,String queryCode,
			String queryType,PageObject pageObject,HttpServletRequest request){
		return iWaterQualityEvaluationService.qualityDetailsReportsForMn(timeType,startTime,endTime,queryCode,
				queryType,pageObject, request);
	}
	
	@ApiOperation(value="水质评价断面水质详情----柱状折线图（站点）----站点")
	@ApiImplicitParams({@ApiImplicitParam(value = "时间类型", name = "timeType", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "开始时间", name = "startTime", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "结束时间", name = "endTime", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "查询参数code", name = "queryCode", paramType = "query",required = true,dataType = "String"),
		@ApiImplicitParam(value = "查询类型-area区域/basinn流域station单站", name = "queryType", paramType = "query",required = true,dataType = "String")})
	@GetMapping(value = "/waterQualityBarLineForMn")
	public ResultEntity waterQualityBarLineForMn(String timeType,String startTime,String endTime,String queryCode,
			String queryType,HttpServletRequest request){
		return iWaterQualityEvaluationService.waterQualityBarLineForMn(timeType,startTime,endTime,queryCode,
				queryType, request);
	}
}
